home *** CD-ROM | disk | FTP | other *** search
/ Merciful 2 / Merciful - Disc 2.iso / software / k / kids7.dms / kids7.adf / travel.amos / travel.amosSourceCode < prev   
AMOS Source Code  |  1992-10-04  |  8KB  |  203 lines

  1. Dim ANS(3),TRIP(10)
  2. Global ANS(),TRIP(),CAUGHT,CUC,NAME$,SCORE,LEVEL
  3. STRIPPER
  4. FINDANS
  5. INIT
  6. '
  7. CATCHACAB
  8. CATCHATRAIN
  9. CATCHABUS
  10. CATCHACRAB
  11. '
  12. Procedure FINDANS
  13.    Music 1 : Colour Back $BBB : If Screen=0 Then Screen Close 0
  14.    Get Fonts : Screen Open 0,352,272,32,Lowres : Screen Display 0,120,34,, : Curs Off : Flash Off 
  15.    Get Bob Palette : Cls 21 : Set Font 3 : Ink 30,21 : TX=50 : TY=100
  16.    Text 50,40,"we  went  in...."
  17.    Dim VH$(3) : VH$(1)="taxi" : VH$(2)="train" : VH$(3)="bus" : PQ=Rnd(2)+1
  18.    For M=1 To 3
  19.       X=Rnd(6)+1 : Restore CUL : For N=1 To X : Read CL$,C : Next N
  20.       If LEVEL=1
  21.          T=M
  22.       Else 
  23.          If PQ=1 : Restore SW1 : End If 
  24.          If PQ=2 : Restore SW2 : End If 
  25.          If PQ=3 : Restore SW3 : End If 
  26.          For N=1 To M : Read T : Next N
  27.       End If 
  28.       If LEVEL<3 Then Ink C,21 Else Ink 30,21
  29.       ANS(T)=C : Text 50,TY,"a  "+VH$(T)+"  that  was  "+CL$+"..."
  30.       Add TY,60
  31.    Next M
  32.    Locate ,30 : Pen 3 : Paper 21 : Centre "Click to continue" : Flash 3,"(f00,25)(bbb,25)"
  33.    Repeat : MK=Mouse Key : Until MK>0
  34.    CUL: Data "red",4,"blue",10,"green",14,"orange",18,"grey",23,"brown",27,"pink",28
  35.    SW1: Data 3,2,1
  36.    SW2: Data 2,1,3
  37.    SW3: Data 3,1,2
  38. End Proc
  39. Procedure SETCLOCK
  40.    Gr Writing 8 : Ink 6 : Text 28,135,"88  88" : Gr Writing 1
  41.    Get Bob 1,2,21,116 To 94,144
  42.    Bob 9,140,-30,2
  43. End Proc
  44. Procedure CATCHACAB
  45.    MAKETRACKS
  46.    CATCHACOLOUR
  47.    CHQ=0 : I=Rnd(9)+1 : TRIP(I)=ANS(1)
  48.    Repeat 
  49.       Screen 1 : Add CHQ,1,1 To 10
  50.       CUC=TRIP(CHQ) : Ink CUC : Paint 64,64 : Wait 3
  51.       Get Bob 1,1,8,12 To 105,108 : Wait Vbl : Screen 0
  52.       Bob 1,-80,140,1 : Bob 10,80,279,7 : Wait Vbl 
  53.       Amal 1,"M 210,0,100" : Amal On 1 : Amal 10,"M 0,-80,100" : Amal On 10
  54.       While Chanmv(1) or Chanmv(10) : Wend 
  55.       CHECK
  56.       If CAUGHT=1
  57.          Bob Off 11 : Screen 1 : Paste Bob 27,29,3
  58.          Get Bob 1,1,8,12 To 105,108 : Wait Vbl : Screen 0 : Wait 15
  59.       End If 
  60.       Amal 1,"M 250,0,50" : Amal On 1 : Amal 10,"M 0,80,50" : Amal On 10
  61.       While Chanmv(1) or Chanmv(10) or Chanmv(11) : Wend 
  62.    Until CAUGHT=1
  63. End Proc
  64. Procedure CATCHABUS
  65.    MAKETRACKS
  66.    CATCHACOLOUR
  67.    CHQ=0 : I=Rnd(9)+1 : TRIP(I)=ANS(3)
  68.    Repeat 
  69.       Screen 1 : Add CHQ,1,1 To 10
  70.       CUC=TRIP(CHQ) : Ink CUC : Paint 198,58 : Wait 3
  71.       Get Bob 1,1,132,13 To 265,135 : Wait Vbl : Screen 0
  72.       Bob 1,-80,115,1 : Bob 10,80,279,7 : Wait Vbl 
  73.       Amal 1,"M 210,0,200" : Amal On 1 : Amal 10,"M 0,-80,100" : Amal On 10
  74.       While Chanmv(1) or Chanmv(10) : Wend 
  75.       CHECK
  76.       If CAUGHT=3
  77.          Bob Off 11 : Screen 1 : Paste Bob 168,31,3
  78.          Get Bob 1,1,132,13 To 265,135 : Wait Vbl : Screen 0 : Wait 15
  79.       End If 
  80.       Amal 1,"M 250,0,50" : Amal On 1 : Amal 10,"M 0,80,50" : Amal On 10
  81.       While Chanmv(1) or Chanmv(10) or Chanmv(11) : Wend 
  82.    Until CAUGHT=3
  83.    ARRIVE
  84.    Data 4,10,14,18,23,27,28
  85. End Proc
  86. Procedure CATCHATRAIN
  87.    MAKETRACKS
  88.    CATCHACOLOUR
  89.    CHQ=0 : I=Rnd(9)+1 : TRIP(I)=ANS(2)
  90.    Repeat 
  91.       Screen 1 : Add CHQ,1,1 To 10
  92.       CUC=TRIP(CHQ) : Ink CUC : Paint 135,195 : Wait 3
  93.       Get Bob 1,1,29,154 To 243,239 : Wait Vbl : Screen 0
  94.       Bob 1,-180,135,1 : Bob 10,80,279,7 : Wait Vbl 
  95.       Amal 1,"M 210,0,150" : Amal On 1 : Amal 10,"M 0,-80,100" : Amal On 10
  96.       While Chanmv(1) or Chanmv(10) : Wend 
  97.       CHECK
  98.       If CAUGHT=2
  99.          Bob Off 11 : Screen 1 : Paste Bob 109,170,3
  100.          Get Bob 1,1,29,154 To 243,239 : Wait Vbl : Screen 0 : Wait 15
  101.       End If 
  102.       Amal 1,"M 320,0,50" : Amal On 1 : Amal 10,"M 0,80,50" : Amal On 10
  103.       While Chanmv(1) or Chanmv(10) or Chanmv(11) : Wend 
  104.    Until CAUGHT=2
  105.    Data 4,10,14,18,23,27,28
  106. End Proc
  107. Procedure CATCHACOLD
  108. End Proc
  109. Procedure CATCHACRAB
  110.    Screen Open 0,640,200,4,Hires : Screen Hide 0 : Curs Off : Flash Off : Palette $BBB,$F,$FFF,$555 : Set Font 3
  111.    Unpack 9 To 1 : Screen To Back : Get Bob 1,1,0,0 To 180,56 : Screen 0
  112.    Cls 0 : Cls 2,50,5 To 500,190 : Ink 3
  113.    Draw 50,190 To 500,190 : Draw 500,5 To 500,190
  114.    Draw 51,191 To 501,191 : Draw 501,6 To 501,191
  115.    Ink 1,2 : Text 90,25,"Dear  Duncan,"
  116.    Text 80,45,"I  arrived  safely  with  a  little  bit  of  help "
  117.    Text 80,65,"from  "+NAME$+"." : S$=Str$(SCORE)
  118.    Text 80,88,"A  total  of  "+S$+"  points  has  been  scored."
  119.    Text 80,110,"I  will  send  you  some  postcards  and  let"
  120.    Text 80,130,"you  know  how  I  am  getting  on."
  121.    Text 90,160,"Your  little"
  122.    Wait Vbl : Screen Show 0 : Locate ,24 : Pen 1 : Paper 0
  123.    Paste Bob 200,133,1 : Screen Close 1
  124.    Centre "Click to continue" : Repeat : MK=Mouse Key : Until MK<>0
  125.    Screen 0 : Cls 0 : Amal Off : Bob Off : Limit Mouse : Ink 1,0
  126.    Text 20,100,"Having  a  lovely  time..."
  127.    A$=NAME$+"|"+Str$(LEVEL)+"/XXX\"+Str$(SCORE) : Command Line$=A$
  128.    Show On : Run "KIDS-7:cards.amos"
  129. End Proc
  130. Procedure CATCHACOLOUR
  131.    For N=1 To 10 : TRIP(N)=0 : Next N : CHQ=0
  132.    Repeat 
  133.       Repeat 
  134.          C=Rnd(6)+1 : Restore : For N=1 To C : Read I : Next N : GOOD=True
  135.          For N=1 To 10
  136.             If I=ANS(CAUGHT+1) Then GOOD=False
  137.          Next N
  138.       Until GOOD
  139.       TRIP(CHQ)=I : Inc CHQ
  140.    Until CHQ=11
  141.    Data 4,10,14,18,23,27,28
  142. End Proc
  143. Procedure MAKETRACKS
  144.    C=2 : Screen 0 : Bob Off : Cls 21 : Screen Hide 0 : Wait Vbl 
  145.    If CAUGHT=0
  146.       For N=50 To 300 Step 50 : Paste Bob N-30,70,4 : Bob C,N-14,70,5 : Inc C : Next N
  147.       Ink 23 : Draw 0,201 To 340,201 : Draw 0,244 To 340,244
  148.    End If 
  149.    If CAUGHT=1
  150.       For N=1 To 390 Step 32 : Paste Bob N,215,9 : Next N
  151.       For N=3 To 390 Step 100 : Paste Bob N,70,4 : Next N
  152.       Ink 23 : Draw 0,201 To 340,201
  153.       ' Draw 0,244 To 340,244
  154.       Bob 2,30,160,10 : Bob 3,70,160,10 : Bob 4,20,160,11
  155.       Bob 5,238,160,10 : Bob 6,310,160,10 : Bob 7,225,160,12
  156.    End If 
  157.    If CAUGHT=2
  158.       Ink 23 : Draw 0,201 To 340,201 : Draw 0,244 To 340,244
  159.       For N=3 To 390 Step 60 : Paste Bob N,70,4 : Next N
  160.       For N=50 To 300 Step 80 : Bob C,N-14,70,5 : Inc C : Next N
  161.    End If 
  162.    Screen Show 0
  163. End Proc
  164. Procedure INIT
  165.    Double Buffer : Cls 21 : Unpack 10 To 1 : Screen Hide 1 : Set Font 3 : Screen 0
  166.    Channel 1 To Bob 1 : Channel 9 To Bob 9 : Channel 10 To Bob 10 : Channel 11 To Bob 11
  167.    CAUGHT=0 : Limit Mouse 215,268 To 360,268 : Hide 
  168. End Proc
  169. Procedure CHECK
  170.    Wait 5 : Bob 11,-40,210,8 : Amal 11,"M 70,0,20" : Amal On 11 : While Chanmv(11) or Chanmv(10) : Wend 
  171.    Flash 6,"(DDD,10)(000,20)" : Wait Vbl : Show 
  172.    Bob 11,30,210,8 : Amal 11,"L: M 0,-20,50; M 0,20,50; J L" : Amal On 11
  173.    Repeat 
  174.       MK=Mouse Key
  175.    Until MK>0
  176. Hide 
  177.    GOOD=False
  178.    If X Mouse<237
  179.       If CUC=ANS(CAUGHT+1)
  180.          Sam Play 6,2,20000 : Inc CAUGHT : Add SCORE,50 : GOOD=True
  181.       Else 
  182.          Sam Play 6,1,11000
  183.          Wait 8 : Sam Play 6,1,9000 : Add SCORE,-20
  184.       End If 
  185.    Else If X Mouse>340 and CUC=ANS(CAUGHT+1)
  186.       Sam Play 6,1,11000
  187.       Wait 8 : Sam Play 6,1,9000 : Add SCORE,-20
  188.    End If 
  189.    If Not GOOD
  190.       Bob 11,30,210,8 : Amal Off 11 : Amal 11,"M -70,0,50" : Amal On 11 : Flash Off 
  191.    End If 
  192. End Proc
  193. Procedure ARRIVE
  194.    Bob 12,240,80,6 : Bob 1,-80,115,1 : Amal 1,"M 310,0,200" : Amal On 1
  195.    While Chanmv(1) : Wend : Wait 30
  196.    Bob 11,195,210,8 : Amal 11,"L: M 0,-30,50; M 0,30,50; J L" : Amal On 11
  197.    Wait 200 : Amal Off : Bob Off : Screen Close 1 : Screen Close 0
  198. End Proc
  199. Procedure STRIPPER
  200.    A$=Command Line$ : A=Instr(A$,"|") : B=Instr(A$,"/") : C=Instr(A$,"\") : L=Len(A$)
  201.    NAME$=Left$(A$,A-1) : L$=Mid$(A$,A+1,B-A-1) : LEVEL=Val(L$)
  202.    X$=Mid$(A$,B+1,C-B-1) : S$=Right$(A$,L-C) : SCORE=Val(S$)
  203. End Proc